#include "process.h"
#include <string.h>
#include <unistd.h>

#define SIZE 101
#define STYLE '#'


//v2:根据进度，动态刷新一次进度条
void FlushProcess(double total,double current)
{
    const char* lable = "|/-\\";
    static int index = 0 ;
    int len = strlen(lable);    

    char buffer[SIZE];
    memset(buffer,0,sizeof(buffer));
   
    double rate = current*100/total;
    int num = (int)rate;

    int i = 0;
    for(;i<num;i++)
        buffer[i] = STYLE;

    printf("[%-100s][%.1lf%%][%c]\r",buffer,rate,lable[index++]);
    fflush(stdout); 
    index %= len;

    if(num >= 100)printf("\n");
}


//v1: 展示进度条的基本功能
void process()
{
    int rate = 0;
    char buffer[SIZE];    
    memset(buffer,0,sizeof(buffer));
    const char* LABLE = "|\-//";
    int len = strlen(LABLE);   

    while(rate <= 100)
    {
        printf("[%-100s][%d%%][%c]\r",buffer,rate,LABLE[rate%len]);
        fflush(stdout);
        buffer[rate] = STYLE;    
        rate++;
        usleep(50000);   
    } 
    printf("\n");

}
